<template>
  <div class="admin-login">
    <div class="login-container">
      <!-- 演唱会管理平台标题 -->
      <h1 class="login-title">演唱会管理平台</h1>

      <!-- 登录表单 -->
       <!-- model实现双向绑定 ref署名，可以通过this.$refs 来直接访问这个元素或组件 -->
      <el-form :model="loginForm" ref="loginForm" label-width="80px" class="login-form" :rules="rules">
        <!-- 用户名输入框 -->
        <!-- prop与 el-form 的 model 属性相对应，用于指定该表单项的数据源字段名 -->
        <el-form-item label="用户名" prop="username">
          <el-input v-model="loginForm.username" placeholder="请输入用户名"></el-input>
        </el-form-item>
        <!-- 密码输入框 -->
        <el-form-item label="密码" prop="password">
          <el-input type="password" v-model="loginForm.password" placeholder="请输入密码"></el-input>
        </el-form-item>
        <!-- 登录按钮 -->
        <el-form-item class="login-button-container">
          <el-button type="primary" @click="handleLogin">登录</el-button>
        </el-form-item>
      </el-form>
      <!-- 署名 -->
      <span>From : Lu & Xu & Song</span>
    </div>
  </div>
</template>

<script>
export default {
  name: 'AdminLogin',
  data() {
    return {
      loginForm: {
        username: '',
        password: ''
      },
      // 定义表单验证规则
      
      rules: {
        username: [// 验证规则在字段失去焦点时触发
          { required: true, message: '请输入用户名', trigger: 'blur' }
        ],
        password: [
          { required: true, message: '请输入密码', trigger: 'blur' }
        ]
      }
    };
  },
  methods: {
    // 处理登录按钮点击事件
    handleLogin() {
      // 验证表单
      // validate会执行验证逻辑，并在验证完成后传递一个布尔值参数 valid，表示验证是否通过。
      this.$refs.loginForm.validate((valid) => {
        if (valid) {
          // 验证用户名和密码
          if (this.loginForm.username === 'CUsers' && this.loginForm.password === '123456') {
            // 登录成功，保存用户信息到本地存储
            // JSON.stringify(this.loginForm) 将登录表单数据转换为 JSON 字符串
            localStorage.setItem('currentUser', JSON.stringify(this.loginForm));
            // 检查是否有重定向路径
            const redirect = this.$route.query.redirect || '/';
            // 重定向到重定向路径或首页
            // redirect用来存储重定向路径
            this.$router.push(redirect);
          } else {
            // 显示错误提示
            this.$message.error('用户名或密码错误，请重新输入！');
            // 清空密码输入框
            this.loginForm.password = '';
          }
        } else {
          console.log('表单验证失败!');
          return false;
        }
      });
    }
  }
};
</script>

<style scoped>

.admin-login {
  max-width: 400px; /* 设置登录表单的最大宽度 */
  margin: 0 auto; /* 实现水平居中 */
  padding-top: 100px; 
  text-align: center; /* 让内容居中显示 */
}

.login-container {
  padding: 20px;
  background: #f0f2f5;
  border: 1px solid #dcdcdc; /* 边框颜色 */
  border-radius: 5px;
}

.login-title {
  font-size: 24px; 
  margin-bottom: 20px;
}

.login-signature {
  margin-top: 20px;
  color: #888; /* 署名颜色 */
}

.login-form {
  padding: 20px;
  text-align: left; /* 将表单内容左对齐 */
}

.login-button-container {
  margin-top: 20px; /* 调整按钮上方的间距 */
}

.error-message {
  color: red; /* 错误信息颜色 */
}
</style>
